package initialize

import (
	"context"
	"errors"
	"github.com/go-redis/redis/v8"
	"go.uber.org/zap"
	"gogogo-server/engine/zlog"
	"gogogo-server/gameserver/global"
	"gogogo-server/gameserver/service"
)

func InitRedis() {
	global.GGG_Rdb = redis.NewClient(&redis.Options{
		Addr:     "localhost:6379",
		Password: "", // 没有密码
		DB:       0,  // 使用默认 DB
	})
	// 测试 Redis 连接
	ctx := context.Background()
	var err error
	_, err = global.GGG_Rdb.Ping(ctx).Result()
	if err != nil {
		//panic("failed to connect to redis")
	}
	zap.S().Info("Start Redis Success")
}

// TODO 这个接口需要拆分，或者把上面的合在一起，做一个整的初始化流程。
func TryInitialize() error {
	if !zlog.InitLogger(&global.GGG_CONFIG.ZapLog) {
		return errors.New("初始化日志库失败")
	}
	//global.GGG_DB = Gorm()
	if global.GGG_DB != nil {
		service.RegisterTables()
		//db, _ := global.GGG_DB.DB()
		//defer db.Close()
	}
	return nil
}
